#pragma once
#include<iostream>
#include<queue>

using namespace std;

namespace My
{
	template<class T, class Con = deque<T>>

	class stack
	{
	public:
		stack()
		{}
		void push(const T& x) 
		{
			_d.push_back(x);
		}
		void pop()
		{
			_d.pop_back();
		}
		T& top()
		{ 
			return _d.back();
		}
		const T& top()const
		{
			return _d.back();
		}
		size_t size()const
		{
			return _d.size(); 
		}
		bool empty()const
		{
			return _d.empty();
		}
	private:
		Con _d;
	};

	void testst()
	{
		stack<int> s1;
		s1.push(1);
		s1.push(2);
		s1.push(3);
		s1.push(7);
		s1.push(1);

		while (!s1.empty())
		{
			cout << s1.top() << ' ';
			s1.pop();
		}

		cout << endl;
	}
}